home *** CD-ROM | disk | FTP | other *** search
/ Java Primer Plus / Java Primer Plus (Waite Group Proess)(1996).iso / java_Win / demo / ImageTest / RedBlueSwapFilter.class (.txt) < prev   
Encoding:
Java Class File  |  1995-10-12  |  1.5 KB  |  30 lines

  1. import java.awt.image.ColorModel;
  2. import java.awt.image.DirectColorModel;
  3. import java.awt.image.RGBImageFilter;
  4.  
  5. class RedBlueSwapFilter extends RGBImageFilter {
  6.    public RedBlueSwapFilter() {
  7.       super.canFilterIndexColorModel = true;
  8.    }
  9.  
  10.    public void setColorModel(ColorModel model) {
  11.       if (model instanceof DirectColorModel) {
  12.          DirectColorModel dcm = (DirectColorModel)model;
  13.          int rm = dcm.getRedMask();
  14.          int gm = dcm.getGreenMask();
  15.          int bm = dcm.getBlueMask();
  16.          int am = dcm.getAlphaMask();
  17.          int bits = ((ColorModel)dcm).getPixelSize();
  18.          dcm = new DirectColorModel(bits, bm, gm, rm, am);
  19.          ((RGBImageFilter)this).substituteColorModel(model, dcm);
  20.          super.consumer.setColorModel(dcm);
  21.       } else {
  22.          super.setColorModel(model);
  23.       }
  24.    }
  25.  
  26.    public int filterRGB(int x, int y, int rgb) {
  27.       return rgb & -16711936 | (rgb & 16711680) >> 16 | (rgb & 255) << 16;
  28.    }
  29. }
  30.